import java.util.Scanner;
/**
 * 在命令行输入如下命令：
 *
 * xcopy /s c:\\ d:\\e，
 *
 * 各个参数如下：
 *
 * 参数1：命令字xcopy
 *
 * 参数2：字符串/s
 *
 * 参数3：字符串c:\\
 *
 * 参数4: 字符串d:\\e
 *
 * 请编写一个参数解析程序，实现将命令行各个参数解析出来。
 * 解析规则：
 *
 * 1.参数分隔符为空格
 * 2.对于用""包含起来的参数，如果中间有空格，不能解析为多个参数。比如在命令行输入xcopy /s "C:\\program files" "d:\"时，参数仍然是4个，第3个参数应该是字符串C:\\program files，而不是C:\\program，注意输出参数时，需要将""去掉，引号不存在嵌套情况。
 * 3.参数不定长
 *
 * 4.输入由用例保证，不会出现不符合要求的输入
 * 数据范围：字符串长度：1\le s\le 1000\1≤s≤1000 
 * @return
*/

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        //str.trim();
        boolean flag = false;
        int sum = 0;
        String[] arr = new String[str.split(" ").length];
        for(int i = 0;i<str.length();i++) {
            if(str.charAt(i) == ' ' && !flag) {
                sum++;
            }
            //第一个引号
            if (str.charAt(i) == '"' && !flag) {
                flag = true;
            }else if(str.charAt(i) == '"' && flag) {
                //第二个引号
                flag = false;
            }
        }
        System.out.println(sum+1);
        for(int i = 0;i<str.length();i++) {
            //没有引号因素
            if(str.charAt(i)!=' ' && str.charAt(i)!='"' && !flag) {
                System.out.print(str.charAt(i));
            }else if(str.charAt(i) == ' ' && !flag) {
                //没有引号因素或引号结束打印换行
                System.out.printf("\n");
            }
            
            //第一个引号
            if (str.charAt(i) == '"' && !flag) {
                flag = true;
                i++;
            }
            //在引号内部空格照常打印
            //进入引号内部
            while(flag) {
                System.out.print(str.charAt(i++));
                if(str.charAt(i) == '"') {
                    flag = false;
                }
            }
        }

        
    }
}